package org.xmlsh.sh.logging;
import java.io.Serializable;
import org.apache.logging.log4j.core.Filter;
import org.apache.logging.log4j.core.Layout;
import org.apache.logging.log4j.core.LogEvent;
import org.apache.logging.log4j.core.appender.AbstractAppender;
import org.apache.logging.log4j.core.config.plugins.Plugin;
import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
import org.apache.logging.log4j.core.config.plugins.PluginElement;
import org.apache.logging.log4j.core.config.plugins.PluginFactory;
@Plugin(name = "Shell", category = "Core", elementType = "appender", printObject = true)
public final class ShellAppender extends AbstractAppender {
protected ShellAppender(String name, Filter filter, Layout<? extends Serializable> layout)
{
super(name, filter, layout);
}
@PluginFactory
public static ShellAppender createAppender(@PluginAttribute("name") String name,
@PluginAttribute("ignoreExceptions") boolean ignoreExceptions,
@PluginElement("Layout") Layout<?> layout,
@PluginElement("Filters") Filter filter) {
if (name == null) {
LOGGER.error("No name provided for ShellAppender");
return null;
}
return new ShellAppender(name, filter, layout );
}
// @TODO: Tie this into xmlshui
@Override
public void append(LogEvent event)
{
// System.err.println(event.toString());
}
}